package com.choosefine.springboot.devops.base.config;

import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;

import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * Created by Administrator on 2017/2/20 0020.
 */
public class UrlUtil {
//    private static final String httpHead="http://cb2c4266.ngrok.io";
    private static final String httpHead="http://localhost/";
    private static final String filePath = "d:/roncoo/ttt/";

    /**
     * map拼接url
     * @param ymlUrl
     * @param dataMap
     * @return
     */
    public static String getUrl(String ymlUrl, Map<String, Object> dataMap) {
        String url = "";
        if (dataMap == null) {
            return ymlUrl;
        }
        url += ymlUrl +"?";
        for (Map.Entry<String, Object> entry : dataMap.entrySet()) {
            url += entry.getKey() + "=" + entry.getValue() + "&";
        }
        return url;
    }

    public static String getHttpHead() {
        return httpHead;
    }

    //    /**
//     * bean拼接url
//     * @param ymlUrl
//     * @param object
//     * @return
//     * @throws InvocationTargetException
//     * @throws IllegalAccessException
//     */
//    public String getUrl(String ymlUrl, Object object) throws InvocationTargetException, IllegalAccessException {
//        String url = "";
//        if (object == null) {
//            return ymlUrl;
//        }
//        url += ymlUrl + "?";
//
//        Class<?> actualEditable = object.getClass();
//        PropertyDescriptor[] targetPds = BeanUtils.getPropertyDescriptors(actualEditable);
//        for (PropertyDescriptor targetPd : targetPds) {
//            Object value = targetPd.getReadMethod().invoke(object);
//            if (!"class".equals(targetPd.getName()) && value != null
//                    && !filterParams(value)) {
//                url += targetPd.getName() + "=" + value + "&";
//            }
//        }
//        url = removalExcessiveSymbol(url);
//        return url;
//    }
//
//    /**
//     * List<bean>c参数拼接url
//     * @param ymlUrl
//     * @param objectList
//     * @return
//     * @throws InvocationTargetException
//     * @throws IllegalAccessException
//     */
//    public String getListUrl(String ymlUrl, List<Object> objectList) throws InvocationTargetException, IllegalAccessException {
//        String url = "";
//        if (objectList == null || objectList.size() == 0) {
//            return ymlUrl;
//        }
//        url += ymlUrl + "?";
//        Class<?> actualEditable = objectList.get(0).getClass();
//        PropertyDescriptor[] targetPds = BeanUtils.getPropertyDescriptors(actualEditable);
//        for(int i = 0;i<objectList.size();i++){
//
//            for (PropertyDescriptor targetPd : targetPds) {
//                Object value = targetPd.getReadMethod().invoke(objectList.get(i));
//                if (!"class".equals(targetPd.getName()) && value != null
//                        && !filterParams(value)) {
//                    url += "list["+i+"]."+targetPd.getName() + "=" + value + "&";
//                }
//            }
//        }
//        url = url.substring(0, url.length() - 1);
//        return url;
//    }


    public static String getFilePath() {
        return filePath;
    }
}
